Debugging denotes the process of detecting root causes of unexpectedobservable behaviors in programs, such as a program crash, an unexpected outputvalue being produced or an assertion violation. Debugging of program errors isa difficult task and often takes a significant amount of time in the softwaredevelopment life cycle. In the context of embedded software, the probability ofbugs is quite high. Due to requirements of low code size and less resourceconsumption, embedded softwares typically do away with a lot of sanity checksduring development time. This leads to high chance of errors being uncovered inthe production code at run time. In this paper we propose a methodology fordebugging errors in BusyBox, a de-facto standard for Linux in embedded systems.Our methodology works on top of Valgrind, a popular memory error detector andDaikon, an invariant analyzer. We have experimented with two published errorsin BusyBox and report our findings in this paper.
展开▼